import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import math
import warnings
warnings.filterwarnings("ignore")
# fix_yahoo_finance is used to fetch data
import yfinance as yf
yf.pdr_override()
# input
# Gold Stocks
symbols = ['AEM','AG','AGI','AU','AUG','AUY','AXU','BTG','CDE','CMCL','DRD','EGO','EXK','FNV','FSM','GFI','GOLD','GORO','GSS','GSV','HMY','IAG','KGC','KL','MAG','MUX','NEM','NG','OR','PAAS','PLG','PVG','RGLD','SA','SAND','SILV','SVM','TMQ','USAU','WPM']
start = '2019-12-01'
end = '2020-05-13'
df = pd.DataFrame()
for s in symbols:
df[s] = yf.download(s,start,end)['Adj Close']
[*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed [*********************100%***********************] 1 of 1 completed
from datetime import datetime
from dateutil import relativedelta
d1 = datetime.strptime(start, "%Y-%m-%d")
d2 = datetime.strptime(end, "%Y-%m-%d")
delta = relativedelta.relativedelta(d2,d1)
print('How many years of investing?')
print('%s years' % delta.years)
How many years of investing? 0 years
number_of_years = delta.years
days = (df.index[-1] - df.index[0]).days
days
162
df.head()
| AEM | AG | AGI | AU | AUG | AUY | AXU | BTG | CDE | CMCL | ... | PLG | PVG | RGLD | SA | SAND | SILV | SVM | TMQ | USAU | WPM | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Date | |||||||||||||||||||||
| 2019-12-02 | 59.825211 | 10.91 | 5.628248 | 18.809914 | 1.310 | 3.644445 | 1.78 | 3.711770 | 6.60 | 7.852439 | ... | 1.34 | 10.01 | 116.652649 | 12.68 | 6.72 | 5.72 | 5.08 | 1.77 | 8.4 | 27.750179 |
| 2019-12-03 | 61.448833 | 11.26 | 5.707799 | 19.843315 | 1.430 | 3.723888 | 1.96 | 3.711770 | 7.22 | 8.236687 | ... | 1.35 | 10.32 | 117.587624 | 13.37 | 6.92 | 6.11 | 5.25 | 1.79 | 8.2 | 28.158710 |
| 2019-12-04 | 61.130085 | 11.03 | 5.648136 | 19.674393 | 1.450 | 3.733819 | 2.10 | 3.721748 | 7.29 | 8.177571 | ... | 1.38 | 10.39 | 116.602921 | 13.20 | 6.80 | 6.11 | 5.25 | 1.81 | 8.3 | 27.939499 |
| 2019-12-05 | 61.179890 | 11.23 | 5.658097 | 19.714140 | 1.430 | 3.743749 | 2.02 | 3.721748 | 7.24 | 8.246539 | ... | 1.39 | 10.35 | 117.329018 | 13.29 | 6.88 | 6.17 | 5.36 | 1.92 | 8.3 | 27.959427 |
| 2019-12-06 | 60.084190 | 10.47 | 5.369215 | 18.650928 | 1.424 | 3.535211 | 1.92 | 3.621969 | 6.79 | 8.098752 | ... | 1.36 | 10.13 | 113.042068 | 12.69 | 6.66 | 6.04 | 5.13 | 1.96 | 8.2 | 27.172258 |
5 rows × 40 columns
df.tail()
| AEM | AG | AGI | AU | AUG | AUY | AXU | BTG | CDE | CMCL | ... | PLG | PVG | RGLD | SA | SAND | SILV | SVM | TMQ | USAU | WPM | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Date | |||||||||||||||||||||
| 2020-05-06 | 63.330002 | 7.94 | 8.23 | 25.549999 | 1.04 | 4.87 | 1.68 | 5.42 | 3.84 | 12.604763 | ... | 1.36 | 8.30 | 126.620003 | 14.22 | 8.21 | 7.11 | 3.83 | 1.60 | 5.04 | 42.020000 |
| 2020-05-07 | 65.540001 | 8.37 | 8.53 | 26.260000 | 1.08 | 5.07 | 1.79 | 5.67 | 4.06 | 13.409957 | ... | 1.39 | 8.64 | 135.970001 | 14.64 | 8.56 | 7.90 | 4.04 | 1.65 | 5.11 | 43.730000 |
| 2020-05-08 | 65.889999 | 8.28 | 8.27 | 26.170000 | 1.12 | 5.24 | 1.77 | 5.49 | 4.17 | 13.737998 | ... | 1.43 | 8.54 | 136.429993 | 14.50 | 7.99 | 7.65 | 4.17 | 1.76 | 5.10 | 43.380001 |
| 2020-05-11 | 64.550003 | 7.80 | 7.93 | 25.190001 | 1.14 | 5.07 | 1.75 | 5.21 | 4.21 | 13.668414 | ... | 1.40 | 8.26 | 132.839996 | 13.81 | 7.72 | 7.15 | 4.00 | 1.79 | 5.01 | 42.630001 |
| 2020-05-12 | 64.230003 | 7.91 | 7.84 | 25.290001 | 1.12 | 5.08 | 1.71 | 5.16 | 4.00 | 13.141559 | ... | 1.41 | 8.36 | 128.809998 | 14.48 | 7.85 | 7.00 | 3.90 | 1.79 | 4.85 | 42.340000 |
5 rows × 40 columns
plt.figure(figsize=(12,8))
plt.plot(df)
plt.title('Gold Stocks Closing Price')
plt.legend(labels=df.columns)
<matplotlib.legend.Legend at 0x137ff40a160>
# Normalize the data
normalize = (df - df.min())/ (df.max() - df.min())
plt.figure(figsize=(18,12))
plt.plot(normalize)
plt.title('Gold Stocks Normalize')
plt.legend(labels=normalize.columns)
<matplotlib.legend.Legend at 0x137ff49bcf8>
stock_rets = df.pct_change().dropna()
plt.figure(figsize=(12,8))
plt.plot(stock_rets)
plt.title('Gold Stocks Returns')
plt.legend(labels=stock_rets.columns)
<matplotlib.legend.Legend at 0x137ff57e4a8>
plt.figure(figsize=(12,8))
plt.plot(stock_rets.cumsum())
plt.title('Gold Stocks Returns Cumulative Sum')
plt.legend(labels=stock_rets.columns)
<matplotlib.legend.Legend at 0x137ff63be48>
sns.set(style='ticks')
ax = sns.pairplot(stock_rets, diag_kind='hist')
nplot = len(stock_rets.columns)
for i in range(nplot) :
for j in range(nplot) :
ax.axes[i, j].locator_params(axis='x', nbins=6, tight=True)
ax = sns.PairGrid(stock_rets)
ax.map_upper(plt.scatter, color='purple')
ax.map_lower(sns.kdeplot, color='blue')
ax.map_diag(plt.hist, bins=30)
for i in range(nplot) :
for j in range(nplot) :
ax.axes[i, j].locator_params(axis='x', nbins=6, tight=True)
plt.figure(figsize=(10,10))
corr = stock_rets.corr()
# plot the heatmap
sns.heatmap(corr,
xticklabels=corr.columns,
yticklabels=corr.columns,
cmap="Reds")
<matplotlib.axes._subplots.AxesSubplot at 0x137ae370ac8>
# Box plot
stock_rets.plot(kind='box',figsize=(24,8))
<matplotlib.axes._subplots.AxesSubplot at 0x137ba589f28>
rets = stock_rets.dropna()
plt.figure(figsize=(16,8))
plt.scatter(rets.std(), rets.mean(),alpha = 0.5)
plt.title('Stocks Risk & Returns')
plt.xlabel('Risk')
plt.ylabel('Expected Returns')
plt.grid(which='major')
for label, x, y in zip(rets.columns, rets.std(), rets.mean()):
plt.annotate(
label,
xy = (x, y), xytext = (50, 50),
textcoords = 'offset points', ha = 'right', va = 'bottom',
arrowprops = dict(arrowstyle = '-', connectionstyle = 'arc3,rad=-0.3'))
rets = stock_rets.dropna()
area = np.pi*20.0
sns.set(style='darkgrid')
plt.figure(figsize=(16,8))
plt.scatter(rets.std(), rets.mean(), s=area)
plt.xlabel("Risk", fontsize=15)
plt.ylabel("Expected Return", fontsize=15)
plt.title("Return vs. Risk for Stocks", fontsize=20)
for label, x, y in zip(rets.columns, rets.std(), rets.mean()) :
plt.annotate(label, xy=(x,y), xytext=(50, 0), textcoords='offset points',
arrowprops=dict(arrowstyle='-', connectionstyle='bar,angle=180,fraction=-0.2'),
bbox=dict(boxstyle="round", fc="w"))
rest_rets = rets.corr()
pair_value = rest_rets.abs().unstack()
pair_value.sort_values(ascending = False)
WPM WPM 1.000000
OR OR 1.000000
IAG IAG 1.000000
KGC KGC 1.000000
KL KL 1.000000
MAG MAG 1.000000
MUX MUX 1.000000
NEM NEM 1.000000
NG NG 1.000000
PAAS PAAS 1.000000
GSV GSV 1.000000
PLG PLG 1.000000
PVG PVG 1.000000
RGLD RGLD 1.000000
SA SA 1.000000
SAND SAND 1.000000
SILV SILV 1.000000
SVM SVM 1.000000
HMY HMY 1.000000
GSS GSS 1.000000
USAU USAU 1.000000
CDE CDE 1.000000
AG AG 1.000000
AGI AGI 1.000000
AU AU 1.000000
AUG AUG 1.000000
AUY AUY 1.000000
AXU AXU 1.000000
BTG BTG 1.000000
CMCL CMCL 1.000000
...
TMQ BTG 0.087340
BTG TMQ 0.087340
TMQ GFI 0.085255
GFI TMQ 0.085255
HMY TMQ 0.079441
TMQ HMY 0.079441
PVG 0.073869
PVG TMQ 0.073869
EGO TMQ 0.072637
TMQ EGO 0.072637
FNV 0.066144
FNV TMQ 0.066144
TMQ AEM 0.059039
AEM TMQ 0.059039
TMQ AUY 0.044645
AUY TMQ 0.044645
TMQ KGC 0.044411
KGC TMQ 0.044411
TMQ SAND 0.040304
SAND TMQ 0.040304
OR TMQ 0.023909
TMQ OR 0.023909
WPM 0.022105
WPM TMQ 0.022105
AXU TMQ 0.011575
TMQ AXU 0.011575
AGI 0.011411
AGI TMQ 0.011411
TMQ IAG 0.008734
IAG TMQ 0.008734
Length: 1600, dtype: float64
# Normalized Returns Data
Normalized_Value = ((rets[:] - rets[:].min()) /(rets[:].max() - rets[:].min()))
Normalized_Value.head()
| AEM | AG | AGI | AU | AUG | AUY | AXU | BTG | CDE | CMCL | ... | PLG | PVG | RGLD | SA | SAND | SILV | SVM | TMQ | USAU | WPM | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Date | |||||||||||||||||||||
| 2019-12-03 | 0.571671 | 0.501030 | 0.428014 | 0.595441 | 0.945628 | 0.526956 | 0.669396 | 0.538385 | 0.526586 | 0.550020 | ... | 0.359858 | 0.594880 | 0.490616 | 0.497709 | 0.511746 | 0.667176 | 0.444942 | 0.560527 | 0.167907 | 0.557826 |
| 2019-12-04 | 0.470938 | 0.349518 | 0.377195 | 0.450609 | 0.624919 | 0.470616 | 0.613100 | 0.546088 | 0.368366 | 0.404893 | ... | 0.386737 | 0.535438 | 0.454441 | 0.352829 | 0.389839 | 0.475610 | 0.389981 | 0.560148 | 0.191822 | 0.438932 |
| 2019-12-05 | 0.489641 | 0.460781 | 0.402445 | 0.474651 | 0.510137 | 0.470595 | 0.405463 | 0.538385 | 0.337276 | 0.445270 | ... | 0.359464 | 0.509305 | 0.486670 | 0.394985 | 0.465168 | 0.503201 | 0.424392 | 0.708843 | 0.183722 | 0.483825 |
| 2019-12-06 | 0.431295 | 0.213176 | 0.293272 | 0.346940 | 0.549793 | 0.298726 | 0.383833 | 0.461552 | 0.233424 | 0.377105 | ... | 0.306963 | 0.466526 | 0.392278 | 0.282836 | 0.351960 | 0.416412 | 0.319507 | 0.589108 | 0.175719 | 0.331330 |
| 2019-12-09 | 0.434410 | 0.391923 | 0.371957 | 0.466392 | 0.613556 | 0.454491 | 0.428315 | 0.546280 | 0.375051 | 0.382552 | ... | 0.346268 | 0.540603 | 0.475838 | 0.344556 | 0.430834 | 0.480262 | 0.428399 | 0.511357 | 0.199923 | 0.447125 |
5 rows × 40 columns
Normalized_Value.corr()
| AEM | AG | AGI | AU | AUG | AUY | AXU | BTG | CDE | CMCL | ... | PLG | PVG | RGLD | SA | SAND | SILV | SVM | TMQ | USAU | WPM | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| AEM | 1.000000 | 0.716171 | 0.704508 | 0.691787 | 0.447281 | 0.726255 | 0.475904 | 0.731054 | 0.546997 | 0.440000 | ... | 0.333989 | 0.528840 | 0.818947 | 0.661417 | 0.640156 | 0.509744 | 0.630430 | 0.059039 | 0.512706 | 0.598790 |
| AG | 0.716171 | 1.000000 | 0.791753 | 0.801603 | 0.504139 | 0.860556 | 0.686384 | 0.835238 | 0.724907 | 0.578958 | ... | 0.410342 | 0.675012 | 0.821534 | 0.812760 | 0.846470 | 0.710684 | 0.776763 | 0.131902 | 0.543361 | 0.787543 |
| AGI | 0.704508 | 0.791753 | 1.000000 | 0.792343 | 0.452560 | 0.884097 | 0.574448 | 0.876508 | 0.620540 | 0.422315 | ... | 0.321479 | 0.751575 | 0.772881 | 0.816042 | 0.887098 | 0.498064 | 0.772822 | 0.011411 | 0.445851 | 0.685765 |
| AU | 0.691787 | 0.801603 | 0.792343 | 1.000000 | 0.388629 | 0.830383 | 0.571879 | 0.844513 | 0.572036 | 0.497586 | ... | 0.376693 | 0.661482 | 0.835494 | 0.776467 | 0.827329 | 0.571948 | 0.665614 | 0.112267 | 0.510963 | 0.705699 |
| AUG | 0.447281 | 0.504139 | 0.452560 | 0.388629 | 1.000000 | 0.509729 | 0.492305 | 0.571070 | 0.543673 | 0.529912 | ... | 0.427806 | 0.480939 | 0.377901 | 0.557340 | 0.478749 | 0.471873 | 0.573457 | 0.146242 | 0.389957 | 0.426671 |
| AUY | 0.726255 | 0.860556 | 0.884097 | 0.830383 | 0.509729 | 1.000000 | 0.642051 | 0.890247 | 0.646369 | 0.549600 | ... | 0.368266 | 0.746835 | 0.798605 | 0.837649 | 0.860116 | 0.619532 | 0.776503 | 0.044645 | 0.504232 | 0.816021 |
| AXU | 0.475904 | 0.686384 | 0.574448 | 0.571879 | 0.492305 | 0.642051 | 1.000000 | 0.622609 | 0.609493 | 0.425654 | ... | 0.412043 | 0.523543 | 0.491858 | 0.673928 | 0.667365 | 0.699218 | 0.566359 | -0.011575 | 0.242945 | 0.623129 |
| BTG | 0.731054 | 0.835238 | 0.876508 | 0.844513 | 0.571070 | 0.890247 | 0.622609 | 1.000000 | 0.644435 | 0.573449 | ... | 0.426625 | 0.756939 | 0.795214 | 0.806970 | 0.867387 | 0.663162 | 0.755940 | 0.087340 | 0.455042 | 0.728408 |
| CDE | 0.546997 | 0.724907 | 0.620540 | 0.572036 | 0.543673 | 0.646369 | 0.609493 | 0.644435 | 1.000000 | 0.437185 | ... | 0.299316 | 0.520679 | 0.615682 | 0.685951 | 0.617200 | 0.429700 | 0.697452 | 0.181290 | 0.396586 | 0.532811 |
| CMCL | 0.440000 | 0.578958 | 0.422315 | 0.497586 | 0.529912 | 0.549600 | 0.425654 | 0.573449 | 0.437185 | 1.000000 | ... | 0.407544 | 0.421160 | 0.486044 | 0.473051 | 0.496487 | 0.461988 | 0.418980 | 0.141618 | 0.438943 | 0.490253 |
| DRD | 0.638247 | 0.731286 | 0.720647 | 0.793615 | 0.440601 | 0.763533 | 0.595384 | 0.764820 | 0.569113 | 0.506124 | ... | 0.269331 | 0.570324 | 0.728897 | 0.672031 | 0.750502 | 0.556965 | 0.616802 | -0.089271 | 0.388258 | 0.612824 |
| EGO | 0.608498 | 0.733566 | 0.686020 | 0.755511 | 0.462450 | 0.764409 | 0.579738 | 0.775172 | 0.473145 | 0.582517 | ... | 0.426050 | 0.654860 | 0.655311 | 0.689894 | 0.730827 | 0.583489 | 0.619751 | 0.072637 | 0.408054 | 0.658395 |
| EXK | 0.589933 | 0.814630 | 0.740022 | 0.675852 | 0.586405 | 0.770802 | 0.646857 | 0.765607 | 0.718645 | 0.558906 | ... | 0.393309 | 0.655595 | 0.599376 | 0.794217 | 0.786803 | 0.575660 | 0.775760 | 0.153267 | 0.417469 | 0.641858 |
| FNV | 0.714940 | 0.784162 | 0.820509 | 0.781988 | 0.454944 | 0.850646 | 0.548243 | 0.810536 | 0.576521 | 0.463739 | ... | 0.373915 | 0.648895 | 0.717492 | 0.764883 | 0.813606 | 0.566581 | 0.704589 | 0.066144 | 0.524603 | 0.786445 |
| FSM | 0.703578 | 0.856621 | 0.724424 | 0.747326 | 0.533512 | 0.755080 | 0.675403 | 0.765160 | 0.598825 | 0.480492 | ... | 0.452696 | 0.595344 | 0.734417 | 0.734560 | 0.766619 | 0.721989 | 0.692118 | 0.108947 | 0.506511 | 0.672481 |
| GFI | 0.669311 | 0.773480 | 0.806406 | 0.923740 | 0.412518 | 0.813501 | 0.577955 | 0.856051 | 0.551097 | 0.465341 | ... | 0.396647 | 0.690593 | 0.776950 | 0.738575 | 0.821797 | 0.553456 | 0.680976 | 0.085255 | 0.440393 | 0.660996 |
| GOLD | 0.739557 | 0.822749 | 0.765809 | 0.810258 | 0.534085 | 0.870390 | 0.618280 | 0.827573 | 0.639052 | 0.581797 | ... | 0.360620 | 0.604278 | 0.834743 | 0.788321 | 0.768845 | 0.640240 | 0.707939 | 0.093226 | 0.523623 | 0.790815 |
| GORO | 0.692809 | 0.782797 | 0.726417 | 0.745831 | 0.549462 | 0.807721 | 0.638217 | 0.791244 | 0.647857 | 0.553462 | ... | 0.447396 | 0.688288 | 0.720796 | 0.775176 | 0.774372 | 0.590985 | 0.719667 | 0.168669 | 0.391388 | 0.640997 |
| GSS | 0.513602 | 0.633769 | 0.652766 | 0.520419 | 0.552001 | 0.664171 | 0.500986 | 0.661731 | 0.537670 | 0.445325 | ... | 0.282134 | 0.539183 | 0.526046 | 0.581482 | 0.585813 | 0.441697 | 0.731631 | 0.250560 | 0.426606 | 0.526879 |
| GSV | 0.555216 | 0.612928 | 0.572814 | 0.553812 | 0.522862 | 0.615774 | 0.299868 | 0.631739 | 0.511994 | 0.605746 | ... | 0.395719 | 0.441058 | 0.608464 | 0.528275 | 0.571258 | 0.435291 | 0.702251 | 0.249432 | 0.594284 | 0.501335 |
| HMY | 0.567740 | 0.683020 | 0.664781 | 0.824810 | 0.491876 | 0.720455 | 0.537887 | 0.773852 | 0.459611 | 0.529564 | ... | 0.453382 | 0.569697 | 0.649294 | 0.664920 | 0.722817 | 0.530010 | 0.631430 | 0.079441 | 0.356501 | 0.632560 |
| IAG | 0.627314 | 0.727570 | 0.812365 | 0.738071 | 0.502259 | 0.825327 | 0.618069 | 0.832390 | 0.537507 | 0.487103 | ... | 0.248060 | 0.676378 | 0.674594 | 0.763422 | 0.848869 | 0.502691 | 0.701179 | 0.008734 | 0.327813 | 0.643590 |
| KGC | 0.761611 | 0.837400 | 0.911490 | 0.850501 | 0.496708 | 0.943865 | 0.645598 | 0.885454 | 0.632974 | 0.506704 | ... | 0.370641 | 0.721410 | 0.817601 | 0.823069 | 0.887149 | 0.588997 | 0.769065 | 0.044411 | 0.487644 | 0.779922 |
| KL | 0.701141 | 0.802880 | 0.789092 | 0.841998 | 0.488583 | 0.788042 | 0.586059 | 0.865551 | 0.621176 | 0.463356 | ... | 0.362746 | 0.653294 | 0.825413 | 0.735324 | 0.817787 | 0.603962 | 0.736522 | 0.132892 | 0.481284 | 0.616822 |
| MAG | 0.571962 | 0.800495 | 0.732601 | 0.694199 | 0.451312 | 0.750378 | 0.731369 | 0.735069 | 0.639467 | 0.415006 | ... | 0.331627 | 0.614129 | 0.655977 | 0.786680 | 0.799076 | 0.671585 | 0.713208 | 0.127837 | 0.449636 | 0.635647 |
| MUX | 0.632705 | 0.779181 | 0.658420 | 0.755333 | 0.420381 | 0.776790 | 0.512351 | 0.695784 | 0.575624 | 0.476715 | ... | 0.397822 | 0.594653 | 0.700130 | 0.741835 | 0.675618 | 0.569908 | 0.573989 | 0.207841 | 0.513034 | 0.727427 |
| NEM | 0.775696 | 0.818786 | 0.773433 | 0.773589 | 0.511523 | 0.846247 | 0.602632 | 0.816490 | 0.668866 | 0.549845 | ... | 0.365454 | 0.638657 | 0.815754 | 0.806181 | 0.721503 | 0.604616 | 0.708405 | 0.095422 | 0.556756 | 0.809567 |
| NG | 0.664483 | 0.786550 | 0.855963 | 0.755268 | 0.416079 | 0.861551 | 0.596541 | 0.775437 | 0.676808 | 0.387630 | ... | 0.306546 | 0.695109 | 0.721870 | 0.843842 | 0.840868 | 0.462009 | 0.717681 | 0.101921 | 0.470282 | 0.713559 |
| OR | 0.598227 | 0.773634 | 0.869827 | 0.733543 | 0.493297 | 0.834563 | 0.681400 | 0.812745 | 0.674880 | 0.396004 | ... | 0.344794 | 0.743209 | 0.671201 | 0.872597 | 0.874250 | 0.550910 | 0.736698 | 0.023909 | 0.400490 | 0.739686 |
| PAAS | 0.793424 | 0.878781 | 0.815309 | 0.835650 | 0.516562 | 0.896010 | 0.538443 | 0.869370 | 0.692184 | 0.592470 | ... | 0.394784 | 0.646848 | 0.871735 | 0.785521 | 0.792567 | 0.611917 | 0.802032 | 0.154941 | 0.580242 | 0.757556 |
| PLG | 0.333989 | 0.410342 | 0.321479 | 0.376693 | 0.427806 | 0.368266 | 0.412043 | 0.426625 | 0.299316 | 0.407544 | ... | 1.000000 | 0.297361 | 0.319991 | 0.423920 | 0.352560 | 0.455028 | 0.372465 | 0.287884 | 0.379402 | 0.383889 |
| PVG | 0.528840 | 0.675012 | 0.751575 | 0.661482 | 0.480939 | 0.746835 | 0.523543 | 0.756939 | 0.520679 | 0.421160 | ... | 0.297361 | 1.000000 | 0.564952 | 0.717200 | 0.732364 | 0.470111 | 0.651618 | 0.073869 | 0.364181 | 0.645217 |
| RGLD | 0.818947 | 0.821534 | 0.772881 | 0.835494 | 0.377901 | 0.798605 | 0.491858 | 0.795214 | 0.615682 | 0.486044 | ... | 0.319991 | 0.564952 | 1.000000 | 0.723545 | 0.748147 | 0.570344 | 0.689535 | 0.153031 | 0.585401 | 0.665803 |
| SA | 0.661417 | 0.812760 | 0.816042 | 0.776467 | 0.557340 | 0.837649 | 0.673928 | 0.806970 | 0.685951 | 0.473051 | ... | 0.423920 | 0.717200 | 0.723545 | 1.000000 | 0.827057 | 0.588066 | 0.728943 | 0.131347 | 0.557659 | 0.754304 |
| SAND | 0.640156 | 0.846470 | 0.887098 | 0.827329 | 0.478749 | 0.860116 | 0.667365 | 0.867387 | 0.617200 | 0.496487 | ... | 0.352560 | 0.732364 | 0.748147 | 0.827057 | 1.000000 | 0.605068 | 0.730795 | 0.040304 | 0.377682 | 0.729300 |
| SILV | 0.509744 | 0.710684 | 0.498064 | 0.571948 | 0.471873 | 0.619532 | 0.699218 | 0.663162 | 0.429700 | 0.461988 | ... | 0.455028 | 0.470111 | 0.570344 | 0.588066 | 0.605068 | 1.000000 | 0.503344 | 0.113847 | 0.415889 | 0.650873 |
| SVM | 0.630430 | 0.776763 | 0.772822 | 0.665614 | 0.573457 | 0.776503 | 0.566359 | 0.755940 | 0.697452 | 0.418980 | ... | 0.372465 | 0.651618 | 0.689535 | 0.728943 | 0.730795 | 0.503344 | 1.000000 | 0.134738 | 0.485607 | 0.648744 |
| TMQ | 0.059039 | 0.131902 | 0.011411 | 0.112267 | 0.146242 | 0.044645 | -0.011575 | 0.087340 | 0.181290 | 0.141618 | ... | 0.287884 | 0.073869 | 0.153031 | 0.131347 | 0.040304 | 0.113847 | 0.134738 | 1.000000 | 0.237951 | 0.022105 |
| USAU | 0.512706 | 0.543361 | 0.445851 | 0.510963 | 0.389957 | 0.504232 | 0.242945 | 0.455042 | 0.396586 | 0.438943 | ... | 0.379402 | 0.364181 | 0.585401 | 0.557659 | 0.377682 | 0.415889 | 0.485607 | 0.237951 | 1.000000 | 0.456016 |
| WPM | 0.598790 | 0.787543 | 0.685765 | 0.705699 | 0.426671 | 0.816021 | 0.623129 | 0.728408 | 0.532811 | 0.490253 | ... | 0.383889 | 0.645217 | 0.665803 | 0.754304 | 0.729300 | 0.650873 | 0.648744 | 0.022105 | 0.456016 | 1.000000 |
40 rows × 40 columns
normalized_rets = Normalized_Value.corr()
normalized_pair_value = normalized_rets.abs().unstack()
normalized_pair_value.sort_values(ascending = False)
WPM WPM 1.000000
OR OR 1.000000
IAG IAG 1.000000
KGC KGC 1.000000
KL KL 1.000000
MAG MAG 1.000000
MUX MUX 1.000000
NEM NEM 1.000000
NG NG 1.000000
PAAS PAAS 1.000000
GSV GSV 1.000000
PLG PLG 1.000000
PVG PVG 1.000000
RGLD RGLD 1.000000
SA SA 1.000000
SAND SAND 1.000000
SILV SILV 1.000000
SVM SVM 1.000000
HMY HMY 1.000000
GSS GSS 1.000000
USAU USAU 1.000000
CDE CDE 1.000000
AG AG 1.000000
AGI AGI 1.000000
AU AU 1.000000
AUG AUG 1.000000
AUY AUY 1.000000
AXU AXU 1.000000
BTG BTG 1.000000
CMCL CMCL 1.000000
...
TMQ BTG 0.087340
BTG TMQ 0.087340
TMQ GFI 0.085255
GFI TMQ 0.085255
HMY TMQ 0.079441
TMQ HMY 0.079441
PVG 0.073869
PVG TMQ 0.073869
EGO TMQ 0.072637
TMQ EGO 0.072637
FNV 0.066144
FNV TMQ 0.066144
TMQ AEM 0.059039
AEM TMQ 0.059039
TMQ AUY 0.044645
AUY TMQ 0.044645
TMQ KGC 0.044411
KGC TMQ 0.044411
TMQ SAND 0.040304
SAND TMQ 0.040304
OR TMQ 0.023909
TMQ OR 0.023909
WPM 0.022105
WPM TMQ 0.022105
AXU TMQ 0.011575
TMQ AXU 0.011575
AGI 0.011411
AGI TMQ 0.011411
TMQ IAG 0.008734
IAG TMQ 0.008734
Length: 1600, dtype: float64
print("Stock returns: ")
print(rets.mean())
print('-' * 50)
print("Stock risks:")
print(rets.std())
Stock returns: AEM 0.001426 AG -0.001522 AGI 0.004778 AU 0.004299 AUG -0.000550 AUY 0.004270 AXU 0.001783 BTG 0.004370 CDE -0.001518 CMCL 0.005892 DRD 0.009417 EGO 0.002910 EXK -0.002053 FNV 0.003750 FSM 0.001687 GFI 0.006066 GOLD 0.004556 GORO 0.000167 GSS -0.001672 GSV 0.002743 HMY 0.004012 IAG 0.001567 KGC 0.005539 KL 0.000665 MAG 0.002446 MUX -0.000310 NEM 0.004958 NG 0.005584 OR 0.001986 PAAS 0.002181 PLG 0.003272 PVG -0.000308 RGLD 0.001991 SA 0.002890 SAND 0.002849 SILV 0.003237 SVM 0.000373 TMQ 0.001344 USAU 0.001165 WPM 0.004355 dtype: float64 -------------------------------------------------- Stock risks: AEM 0.039499 AG 0.052698 AGI 0.060617 AU 0.057724 AUG 0.041567 AUY 0.050570 AXU 0.065967 BTG 0.052778 CDE 0.078391 CMCL 0.050785 DRD 0.064093 EGO 0.061169 EXK 0.056984 FNV 0.032165 FSM 0.059565 GFI 0.067190 GOLD 0.035489 GORO 0.057420 GSS 0.043186 GSV 0.078153 HMY 0.064018 IAG 0.054417 KGC 0.052840 KL 0.047669 MAG 0.064114 MUX 0.055404 NEM 0.034608 NG 0.054173 OR 0.049132 PAAS 0.054527 PLG 0.076743 PVG 0.051226 RGLD 0.047112 SA 0.059063 SAND 0.054221 SILV 0.053523 SVM 0.076470 TMQ 0.050266 USAU 0.134714 WPM 0.033102 dtype: float64
table = pd.DataFrame()
table['Returns'] = rets.mean()
table['Risk'] = rets.std()
table.sort_values(by='Returns')
| Returns | Risk | |
|---|---|---|
| EXK | -0.002053 | 0.056984 |
| GSS | -0.001672 | 0.043186 |
| AG | -0.001522 | 0.052698 |
| CDE | -0.001518 | 0.078391 |
| AUG | -0.000550 | 0.041567 |
| MUX | -0.000310 | 0.055404 |
| PVG | -0.000308 | 0.051226 |
| GORO | 0.000167 | 0.057420 |
| SVM | 0.000373 | 0.076470 |
| KL | 0.000665 | 0.047669 |
| USAU | 0.001165 | 0.134714 |
| TMQ | 0.001344 | 0.050266 |
| AEM | 0.001426 | 0.039499 |
| IAG | 0.001567 | 0.054417 |
| FSM | 0.001687 | 0.059565 |
| AXU | 0.001783 | 0.065967 |
| OR | 0.001986 | 0.049132 |
| RGLD | 0.001991 | 0.047112 |
| PAAS | 0.002181 | 0.054527 |
| MAG | 0.002446 | 0.064114 |
| GSV | 0.002743 | 0.078153 |
| SAND | 0.002849 | 0.054221 |
| SA | 0.002890 | 0.059063 |
| EGO | 0.002910 | 0.061169 |
| SILV | 0.003237 | 0.053523 |
| PLG | 0.003272 | 0.076743 |
| FNV | 0.003750 | 0.032165 |
| HMY | 0.004012 | 0.064018 |
| AUY | 0.004270 | 0.050570 |
| AU | 0.004299 | 0.057724 |
| WPM | 0.004355 | 0.033102 |
| BTG | 0.004370 | 0.052778 |
| GOLD | 0.004556 | 0.035489 |
| AGI | 0.004778 | 0.060617 |
| NEM | 0.004958 | 0.034608 |
| KGC | 0.005539 | 0.052840 |
| NG | 0.005584 | 0.054173 |
| CMCL | 0.005892 | 0.050785 |
| GFI | 0.006066 | 0.067190 |
| DRD | 0.009417 | 0.064093 |
table.sort_values(by='Risk')
| Returns | Risk | |
|---|---|---|
| FNV | 0.003750 | 0.032165 |
| WPM | 0.004355 | 0.033102 |
| NEM | 0.004958 | 0.034608 |
| GOLD | 0.004556 | 0.035489 |
| AEM | 0.001426 | 0.039499 |
| AUG | -0.000550 | 0.041567 |
| GSS | -0.001672 | 0.043186 |
| RGLD | 0.001991 | 0.047112 |
| KL | 0.000665 | 0.047669 |
| OR | 0.001986 | 0.049132 |
| TMQ | 0.001344 | 0.050266 |
| AUY | 0.004270 | 0.050570 |
| CMCL | 0.005892 | 0.050785 |
| PVG | -0.000308 | 0.051226 |
| AG | -0.001522 | 0.052698 |
| BTG | 0.004370 | 0.052778 |
| KGC | 0.005539 | 0.052840 |
| SILV | 0.003237 | 0.053523 |
| NG | 0.005584 | 0.054173 |
| SAND | 0.002849 | 0.054221 |
| IAG | 0.001567 | 0.054417 |
| PAAS | 0.002181 | 0.054527 |
| MUX | -0.000310 | 0.055404 |
| EXK | -0.002053 | 0.056984 |
| GORO | 0.000167 | 0.057420 |
| AU | 0.004299 | 0.057724 |
| SA | 0.002890 | 0.059063 |
| FSM | 0.001687 | 0.059565 |
| AGI | 0.004778 | 0.060617 |
| EGO | 0.002910 | 0.061169 |
| HMY | 0.004012 | 0.064018 |
| DRD | 0.009417 | 0.064093 |
| MAG | 0.002446 | 0.064114 |
| AXU | 0.001783 | 0.065967 |
| GFI | 0.006066 | 0.067190 |
| SVM | 0.000373 | 0.076470 |
| PLG | 0.003272 | 0.076743 |
| GSV | 0.002743 | 0.078153 |
| CDE | -0.001518 | 0.078391 |
| USAU | 0.001165 | 0.134714 |
rf = 0.01
table['Sharpe Ratio'] = (table['Returns'] - rf) / table['Risk']
table
| Returns | Risk | Sharpe Ratio | |
|---|---|---|---|
| AEM | 0.001426 | 0.039499 | -0.217057 |
| AG | -0.001522 | 0.052698 | -0.218639 |
| AGI | 0.004778 | 0.060617 | -0.086149 |
| AU | 0.004299 | 0.057724 | -0.098757 |
| AUG | -0.000550 | 0.041567 | -0.253818 |
| AUY | 0.004270 | 0.050570 | -0.113307 |
| AXU | 0.001783 | 0.065967 | -0.124570 |
| BTG | 0.004370 | 0.052778 | -0.106671 |
| CDE | -0.001518 | 0.078391 | -0.146934 |
| CMCL | 0.005892 | 0.050785 | -0.080886 |
| DRD | 0.009417 | 0.064093 | -0.009097 |
| EGO | 0.002910 | 0.061169 | -0.115909 |
| EXK | -0.002053 | 0.056984 | -0.211511 |
| FNV | 0.003750 | 0.032165 | -0.194307 |
| FSM | 0.001687 | 0.059565 | -0.139564 |
| GFI | 0.006066 | 0.067190 | -0.058546 |
| GOLD | 0.004556 | 0.035489 | -0.153390 |
| GORO | 0.000167 | 0.057420 | -0.171243 |
| GSS | -0.001672 | 0.043186 | -0.270279 |
| GSV | 0.002743 | 0.078153 | -0.092857 |
| HMY | 0.004012 | 0.064018 | -0.093535 |
| IAG | 0.001567 | 0.054417 | -0.154973 |
| KGC | 0.005539 | 0.052840 | -0.084430 |
| KL | 0.000665 | 0.047669 | -0.195822 |
| MAG | 0.002446 | 0.064114 | -0.117825 |
| MUX | -0.000310 | 0.055404 | -0.186097 |
| NEM | 0.004958 | 0.034608 | -0.145691 |
| NG | 0.005584 | 0.054173 | -0.081512 |
| OR | 0.001986 | 0.049132 | -0.163122 |
| PAAS | 0.002181 | 0.054527 | -0.143393 |
| PLG | 0.003272 | 0.076743 | -0.087667 |
| PVG | -0.000308 | 0.051226 | -0.201224 |
| RGLD | 0.001991 | 0.047112 | -0.170006 |
| SA | 0.002890 | 0.059063 | -0.120377 |
| SAND | 0.002849 | 0.054221 | -0.131878 |
| SILV | 0.003237 | 0.053523 | -0.126360 |
| SVM | 0.000373 | 0.076470 | -0.125894 |
| TMQ | 0.001344 | 0.050266 | -0.172210 |
| USAU | 0.001165 | 0.134714 | -0.065581 |
| WPM | 0.004355 | 0.033102 | -0.170535 |
table['Max Returns'] = rets.max()
table['Min Returns'] = rets.min()
table['Median Returns'] = rets.median()
total_return = stock_rets[-1:].transpose()
table['Total Return'] = 100 * total_return
table
| Returns | Risk | Sharpe Ratio | Max Returns | Min Returns | Median Returns | Total Return | |
|---|---|---|---|---|---|---|---|
| AEM | 0.001426 | 0.039499 | -0.217057 | 0.164597 | -0.156319 | 0.000812 | -0.495739 |
| AG | -0.001522 | 0.052698 | -0.218639 | 0.205000 | -0.141553 | -0.005413 | 1.410252 |
| AGI | 0.004778 | 0.060617 | -0.086149 | 0.290870 | -0.192946 | 0.001764 | -1.134927 |
| AU | 0.004299 | 0.057724 | -0.098757 | 0.232181 | -0.205929 | 0.002628 | 0.396984 |
| AUG | -0.000550 | 0.041567 | -0.253818 | 0.104762 | -0.137255 | 0.000000 | -1.754384 |
| AUY | 0.004270 | 0.050570 | -0.113307 | 0.182432 | -0.157143 | 0.004762 | 0.197234 |
| AXU | 0.001783 | 0.065967 | -0.124570 | 0.275510 | -0.251969 | -0.008130 | -2.285712 |
| BTG | 0.004370 | 0.052778 | -0.106671 | 0.161074 | -0.187861 | 0.004785 | -0.959697 |
| CDE | -0.001518 | 0.078391 | -0.146934 | 0.346008 | -0.186441 | 0.001678 | -4.988124 |
| CMCL | 0.005892 | 0.050785 | -0.080886 | 0.222910 | -0.163722 | 0.003802 | -3.854547 |
| DRD | 0.009417 | 0.064093 | -0.009097 | 0.234414 | -0.201195 | 0.006622 | -0.323632 |
| EGO | 0.002910 | 0.061169 | -0.115909 | 0.320479 | -0.193985 | -0.001121 | -0.112110 |
| EXK | -0.002053 | 0.056984 | -0.211511 | 0.271930 | -0.195804 | -0.005952 | 4.411760 |
| FNV | 0.003750 | 0.032165 | -0.194307 | 0.110634 | -0.095818 | 0.003599 | -0.233696 |
| FSM | 0.001687 | 0.059565 | -0.139564 | 0.219828 | -0.225564 | 0.000000 | 1.863352 |
| GFI | 0.006066 | 0.067190 | -0.058546 | 0.267813 | -0.237589 | 0.004862 | 1.270647 |
| GOLD | 0.004556 | 0.035489 | -0.153390 | 0.151802 | -0.103331 | 0.002731 | 0.076866 |
| GORO | 0.000167 | 0.057420 | -0.171243 | 0.146616 | -0.180723 | 0.000000 | -4.627251 |
| GSS | -0.001672 | 0.043186 | -0.270279 | 0.198157 | -0.102459 | 0.000000 | 1.214574 |
| GSV | 0.002743 | 0.078153 | -0.092857 | 0.378378 | -0.270270 | -0.011905 | -7.042247 |
| HMY | 0.004012 | 0.064018 | -0.093535 | 0.168067 | -0.249097 | 0.003135 | 5.763690 |
| IAG | 0.001567 | 0.054417 | -0.154973 | 0.211268 | -0.190476 | -0.003333 | 1.117317 |
| KGC | 0.005539 | 0.052840 | -0.084430 | 0.190000 | -0.153846 | 0.004132 | 0.434779 |
| KL | 0.000665 | 0.047669 | -0.195822 | 0.148540 | -0.175737 | 0.001385 | -3.339018 |
| MAG | 0.002446 | 0.064114 | -0.117825 | 0.286942 | -0.212389 | -0.000918 | -1.143361 |
| MUX | -0.000310 | 0.055404 | -0.186097 | 0.219472 | -0.123905 | 0.000000 | -0.949367 |
| NEM | 0.004958 | 0.034608 | -0.145691 | 0.140182 | -0.111161 | 0.004134 | -0.746626 |
| NG | 0.005584 | 0.054173 | -0.081512 | 0.276968 | -0.117021 | 0.002328 | 0.000000 |
| OR | 0.001986 | 0.049132 | -0.163122 | 0.271357 | -0.143855 | 0.002132 | 2.034257 |
| PAAS | 0.002181 | 0.054527 | -0.143393 | 0.234649 | -0.210000 | 0.004337 | -0.788131 |
| PLG | 0.003272 | 0.076743 | -0.087667 | 0.358974 | -0.190141 | 0.000000 | 0.714285 |
| PVG | -0.000308 | 0.051226 | -0.201224 | 0.195804 | -0.211076 | -0.001940 | 1.210647 |
| RGLD | 0.001991 | 0.047112 | -0.170006 | 0.238794 | -0.214262 | 0.001320 | -3.033724 |
| SA | 0.002890 | 0.059063 | -0.120377 | 0.287157 | -0.176201 | 0.003058 | 4.851550 |
| SAND | 0.002849 | 0.054221 | -0.131878 | 0.218415 | -0.167969 | 0.001475 | 1.683939 |
| SILV | 0.003237 | 0.053523 | -0.126360 | 0.186640 | -0.169279 | 0.000000 | -2.097903 |
| SVM | 0.000373 | 0.076470 | -0.125894 | 0.371429 | -0.237452 | -0.005415 | -2.499998 |
| TMQ | 0.001344 | 0.050266 | -0.172210 | 0.157895 | -0.175676 | -0.004386 | 0.000000 |
| USAU | 0.001165 | 0.134714 | -0.065581 | 1.228916 | -0.276596 | -0.008081 | -3.193619 |
| WPM | 0.004355 | 0.033102 | -0.170535 | 0.098425 | -0.090875 | 0.002732 | -0.680274 |
table['Average Return Days'] = (1 + total_return)**(1 / days) - 1
table
| Returns | Risk | Sharpe Ratio | Max Returns | Min Returns | Median Returns | Total Return | Average Return Days | |
|---|---|---|---|---|---|---|---|---|
| AEM | 0.001426 | 0.039499 | -0.217057 | 0.164597 | -0.156319 | 0.000812 | -0.495739 | -0.000031 |
| AG | -0.001522 | 0.052698 | -0.218639 | 0.205000 | -0.141553 | -0.005413 | 1.410252 | 0.000086 |
| AGI | 0.004778 | 0.060617 | -0.086149 | 0.290870 | -0.192946 | 0.001764 | -1.134927 | -0.000070 |
| AU | 0.004299 | 0.057724 | -0.098757 | 0.232181 | -0.205929 | 0.002628 | 0.396984 | 0.000024 |
| AUG | -0.000550 | 0.041567 | -0.253818 | 0.104762 | -0.137255 | 0.000000 | -1.754384 | -0.000109 |
| AUY | 0.004270 | 0.050570 | -0.113307 | 0.182432 | -0.157143 | 0.004762 | 0.197234 | 0.000012 |
| AXU | 0.001783 | 0.065967 | -0.124570 | 0.275510 | -0.251969 | -0.008130 | -2.285712 | -0.000143 |
| BTG | 0.004370 | 0.052778 | -0.106671 | 0.161074 | -0.187861 | 0.004785 | -0.959697 | -0.000060 |
| CDE | -0.001518 | 0.078391 | -0.146934 | 0.346008 | -0.186441 | 0.001678 | -4.988124 | -0.000316 |
| CMCL | 0.005892 | 0.050785 | -0.080886 | 0.222910 | -0.163722 | 0.003802 | -3.854547 | -0.000243 |
| DRD | 0.009417 | 0.064093 | -0.009097 | 0.234414 | -0.201195 | 0.006622 | -0.323632 | -0.000020 |
| EGO | 0.002910 | 0.061169 | -0.115909 | 0.320479 | -0.193985 | -0.001121 | -0.112110 | -0.000007 |
| EXK | -0.002053 | 0.056984 | -0.211511 | 0.271930 | -0.195804 | -0.005952 | 4.411760 | 0.000267 |
| FNV | 0.003750 | 0.032165 | -0.194307 | 0.110634 | -0.095818 | 0.003599 | -0.233696 | -0.000014 |
| FSM | 0.001687 | 0.059565 | -0.139564 | 0.219828 | -0.225564 | 0.000000 | 1.863352 | 0.000114 |
| GFI | 0.006066 | 0.067190 | -0.058546 | 0.267813 | -0.237589 | 0.004862 | 1.270647 | 0.000078 |
| GOLD | 0.004556 | 0.035489 | -0.153390 | 0.151802 | -0.103331 | 0.002731 | 0.076866 | 0.000005 |
| GORO | 0.000167 | 0.057420 | -0.171243 | 0.146616 | -0.180723 | 0.000000 | -4.627251 | -0.000292 |
| GSS | -0.001672 | 0.043186 | -0.270279 | 0.198157 | -0.102459 | 0.000000 | 1.214574 | 0.000075 |
| GSV | 0.002743 | 0.078153 | -0.092857 | 0.378378 | -0.270270 | -0.011905 | -7.042247 | -0.000451 |
| HMY | 0.004012 | 0.064018 | -0.093535 | 0.168067 | -0.249097 | 0.003135 | 5.763690 | 0.000346 |
| IAG | 0.001567 | 0.054417 | -0.154973 | 0.211268 | -0.190476 | -0.003333 | 1.117317 | 0.000069 |
| KGC | 0.005539 | 0.052840 | -0.084430 | 0.190000 | -0.153846 | 0.004132 | 0.434779 | 0.000027 |
| KL | 0.000665 | 0.047669 | -0.195822 | 0.148540 | -0.175737 | 0.001385 | -3.339018 | -0.000210 |
| MAG | 0.002446 | 0.064114 | -0.117825 | 0.286942 | -0.212389 | -0.000918 | -1.143361 | -0.000071 |
| MUX | -0.000310 | 0.055404 | -0.186097 | 0.219472 | -0.123905 | 0.000000 | -0.949367 | -0.000059 |
| NEM | 0.004958 | 0.034608 | -0.145691 | 0.140182 | -0.111161 | 0.004134 | -0.746626 | -0.000046 |
| NG | 0.005584 | 0.054173 | -0.081512 | 0.276968 | -0.117021 | 0.002328 | 0.000000 | 0.000000 |
| OR | 0.001986 | 0.049132 | -0.163122 | 0.271357 | -0.143855 | 0.002132 | 2.034257 | 0.000124 |
| PAAS | 0.002181 | 0.054527 | -0.143393 | 0.234649 | -0.210000 | 0.004337 | -0.788131 | -0.000049 |
| PLG | 0.003272 | 0.076743 | -0.087667 | 0.358974 | -0.190141 | 0.000000 | 0.714285 | 0.000044 |
| PVG | -0.000308 | 0.051226 | -0.201224 | 0.195804 | -0.211076 | -0.001940 | 1.210647 | 0.000074 |
| RGLD | 0.001991 | 0.047112 | -0.170006 | 0.238794 | -0.214262 | 0.001320 | -3.033724 | -0.000190 |
| SA | 0.002890 | 0.059063 | -0.120377 | 0.287157 | -0.176201 | 0.003058 | 4.851550 | 0.000292 |
| SAND | 0.002849 | 0.054221 | -0.131878 | 0.218415 | -0.167969 | 0.001475 | 1.683939 | 0.000103 |
| SILV | 0.003237 | 0.053523 | -0.126360 | 0.186640 | -0.169279 | 0.000000 | -2.097903 | -0.000131 |
| SVM | 0.000373 | 0.076470 | -0.125894 | 0.371429 | -0.237452 | -0.005415 | -2.499998 | -0.000156 |
| TMQ | 0.001344 | 0.050266 | -0.172210 | 0.157895 | -0.175676 | -0.004386 | 0.000000 | 0.000000 |
| USAU | 0.001165 | 0.134714 | -0.065581 | 1.228916 | -0.276596 | -0.008081 | -3.193619 | -0.000200 |
| WPM | 0.004355 | 0.033102 | -0.170535 | 0.098425 | -0.090875 | 0.002732 | -0.680274 | -0.000042 |
initial_value = df.iloc[0]
ending_value = df.iloc[-1]
table['CAGR'] = ((ending_value / initial_value) ** (252.0 / days)) -1
table
| Returns | Risk | Sharpe Ratio | Max Returns | Min Returns | Median Returns | Total Return | Average Return Days | CAGR | |
|---|---|---|---|---|---|---|---|---|---|
| AEM | 0.001426 | 0.039499 | -0.217057 | 0.164597 | -0.156319 | 0.000812 | -0.495739 | -0.000031 | 0.116850 |
| AG | -0.001522 | 0.052698 | -0.218639 | 0.205000 | -0.141553 | -0.005413 | 1.410252 | 0.000086 | -0.393586 |
| AGI | 0.004778 | 0.060617 | -0.086149 | 0.290870 | -0.192946 | 0.001764 | -1.134927 | -0.000070 | 0.674600 |
| AU | 0.004299 | 0.057724 | -0.098757 | 0.232181 | -0.205929 | 0.002628 | 0.396984 | 0.000024 | 0.584840 |
| AUG | -0.000550 | 0.041567 | -0.253818 | 0.104762 | -0.137255 | 0.000000 | -1.754384 | -0.000109 | -0.216319 |
| AUY | 0.004270 | 0.050570 | -0.113307 | 0.182432 | -0.157143 | 0.004762 | 0.197234 | 0.000012 | 0.676337 |
| AXU | 0.001783 | 0.065967 | -0.124570 | 0.275510 | -0.251969 | -0.008130 | -2.285712 | -0.000143 | -0.060501 |
| BTG | 0.004370 | 0.052778 | -0.106671 | 0.161074 | -0.187861 | 0.004785 | -0.959697 | -0.000060 | 0.669365 |
| CDE | -0.001518 | 0.078391 | -0.146934 | 0.346008 | -0.186441 | 0.001678 | -4.988124 | -0.000316 | -0.541128 |
| CMCL | 0.005892 | 0.050785 | -0.080886 | 0.222910 | -0.163722 | 0.003802 | -3.854547 | -0.000243 | 1.227861 |
| DRD | 0.009417 | 0.064093 | -0.009097 | 0.234414 | -0.201195 | 0.006622 | -0.323632 | -0.000020 | 2.574258 |
| EGO | 0.002910 | 0.061169 | -0.115909 | 0.320479 | -0.193985 | -0.001121 | -0.112110 | -0.000007 | 0.210574 |
| EXK | -0.002053 | 0.056984 | -0.211511 | 0.271930 | -0.195804 | -0.005952 | 4.411760 | 0.000267 | -0.467793 |
| FNV | 0.003750 | 0.032165 | -0.194307 | 0.110634 | -0.095818 | 0.003599 | -0.233696 | -0.000014 | 0.748085 |
| FSM | 0.001687 | 0.059565 | -0.139564 | 0.219828 | -0.225564 | 0.000000 | 1.863352 | 0.000114 | -0.014063 |
| GFI | 0.006066 | 0.067190 | -0.058546 | 0.267813 | -0.237589 | 0.004862 | 1.270647 | 0.000078 | 0.930777 |
| GOLD | 0.004556 | 0.035489 | -0.153390 | 0.151802 | -0.103331 | 0.002731 | 0.076866 | 0.000005 | 0.971097 |
| GORO | 0.000167 | 0.057420 | -0.171243 | 0.146616 | -0.180723 | 0.000000 | -4.627251 | -0.000292 | -0.230688 |
| GSS | -0.001672 | 0.043186 | -0.270279 | 0.198157 | -0.102459 | 0.000000 | 1.214574 | 0.000075 | -0.359784 |
| GSV | 0.002743 | 0.078153 | -0.092857 | 0.378378 | -0.270270 | -0.011905 | -7.042247 | -0.000451 | -0.023121 |
| HMY | 0.004012 | 0.064018 | -0.093535 | 0.168067 | -0.249097 | 0.003135 | 5.763690 | 0.000346 | 0.397169 |
| IAG | 0.001567 | 0.054417 | -0.154973 | 0.211268 | -0.190476 | -0.003333 | 1.117317 | 0.000069 | 0.017434 |
| KGC | 0.005539 | 0.052840 | -0.084430 | 0.190000 | -0.153846 | 0.004132 | 0.434779 | 0.000027 | 1.048815 |
| KL | 0.000665 | 0.047669 | -0.195822 | 0.148540 | -0.175737 | 0.001385 | -3.339018 | -0.000210 | -0.078083 |
| MAG | 0.002446 | 0.064114 | -0.117825 | 0.286942 | -0.212389 | -0.000918 | -1.143361 | -0.000071 | 0.084323 |
| MUX | -0.000310 | 0.055404 | -0.186097 | 0.219472 | -0.123905 | 0.000000 | -0.949367 | -0.000059 | -0.270440 |
| NEM | 0.004958 | 0.034608 | -0.145691 | 0.140182 | -0.111161 | 0.004134 | -0.746626 | -0.000046 | 1.124296 |
| NG | 0.005584 | 0.054173 | -0.081512 | 0.276968 | -0.117021 | 0.002328 | 0.000000 | 0.000000 | 1.054380 |
| OR | 0.001986 | 0.049132 | -0.163122 | 0.271357 | -0.143855 | 0.002132 | 2.034257 | 0.000124 | 0.151788 |
| PAAS | 0.002181 | 0.054527 | -0.143393 | 0.234649 | -0.210000 | 0.004337 | -0.788131 | -0.000049 | 0.126419 |
| PLG | 0.003272 | 0.076743 | -0.087667 | 0.358974 | -0.190141 | 0.000000 | 0.714285 | 0.000044 | 0.082430 |
| PVG | -0.000308 | 0.051226 | -0.201224 | 0.195804 | -0.211076 | -0.001940 | 1.210647 | 0.000074 | -0.244365 |
| RGLD | 0.001991 | 0.047112 | -0.170006 | 0.238794 | -0.214262 | 0.001320 | -3.033724 | -0.000190 | 0.166741 |
| SA | 0.002890 | 0.059063 | -0.120377 | 0.287157 | -0.176201 | 0.003058 | 4.851550 | 0.000292 | 0.229353 |
| SAND | 0.002849 | 0.054221 | -0.131878 | 0.218415 | -0.167969 | 0.001475 | 1.683939 | 0.000103 | 0.273505 |
| SILV | 0.003237 | 0.053523 | -0.126360 | 0.186640 | -0.169279 | 0.000000 | -2.097903 | -0.000131 | 0.369069 |
| SVM | 0.000373 | 0.076470 | -0.125894 | 0.371429 | -0.237452 | -0.005415 | -2.499998 | -0.000156 | -0.337137 |
| TMQ | 0.001344 | 0.050266 | -0.172210 | 0.157895 | -0.175676 | -0.004386 | 0.000000 | 0.000000 | 0.017632 |
| USAU | 0.001165 | 0.134714 | -0.065581 | 1.228916 | -0.276596 | -0.008081 | -3.193619 | -0.000200 | -0.574459 |
| WPM | 0.004355 | 0.033102 | -0.170535 | 0.098425 | -0.090875 | 0.002732 | -0.680274 | -0.000042 | 0.929395 |
table.sort_values(by='Average Return Days')
| Returns | Risk | Sharpe Ratio | Max Returns | Min Returns | Median Returns | Total Return | Average Return Days | CAGR | |
|---|---|---|---|---|---|---|---|---|---|
| GSV | 0.002743 | 0.078153 | -0.092857 | 0.378378 | -0.270270 | -0.011905 | -7.042247 | -0.000451 | -0.023121 |
| CDE | -0.001518 | 0.078391 | -0.146934 | 0.346008 | -0.186441 | 0.001678 | -4.988124 | -0.000316 | -0.541128 |
| GORO | 0.000167 | 0.057420 | -0.171243 | 0.146616 | -0.180723 | 0.000000 | -4.627251 | -0.000292 | -0.230688 |
| CMCL | 0.005892 | 0.050785 | -0.080886 | 0.222910 | -0.163722 | 0.003802 | -3.854547 | -0.000243 | 1.227861 |
| KL | 0.000665 | 0.047669 | -0.195822 | 0.148540 | -0.175737 | 0.001385 | -3.339018 | -0.000210 | -0.078083 |
| USAU | 0.001165 | 0.134714 | -0.065581 | 1.228916 | -0.276596 | -0.008081 | -3.193619 | -0.000200 | -0.574459 |
| RGLD | 0.001991 | 0.047112 | -0.170006 | 0.238794 | -0.214262 | 0.001320 | -3.033724 | -0.000190 | 0.166741 |
| SVM | 0.000373 | 0.076470 | -0.125894 | 0.371429 | -0.237452 | -0.005415 | -2.499998 | -0.000156 | -0.337137 |
| AXU | 0.001783 | 0.065967 | -0.124570 | 0.275510 | -0.251969 | -0.008130 | -2.285712 | -0.000143 | -0.060501 |
| SILV | 0.003237 | 0.053523 | -0.126360 | 0.186640 | -0.169279 | 0.000000 | -2.097903 | -0.000131 | 0.369069 |
| AUG | -0.000550 | 0.041567 | -0.253818 | 0.104762 | -0.137255 | 0.000000 | -1.754384 | -0.000109 | -0.216319 |
| MAG | 0.002446 | 0.064114 | -0.117825 | 0.286942 | -0.212389 | -0.000918 | -1.143361 | -0.000071 | 0.084323 |
| AGI | 0.004778 | 0.060617 | -0.086149 | 0.290870 | -0.192946 | 0.001764 | -1.134927 | -0.000070 | 0.674600 |
| BTG | 0.004370 | 0.052778 | -0.106671 | 0.161074 | -0.187861 | 0.004785 | -0.959697 | -0.000060 | 0.669365 |
| MUX | -0.000310 | 0.055404 | -0.186097 | 0.219472 | -0.123905 | 0.000000 | -0.949367 | -0.000059 | -0.270440 |
| PAAS | 0.002181 | 0.054527 | -0.143393 | 0.234649 | -0.210000 | 0.004337 | -0.788131 | -0.000049 | 0.126419 |
| NEM | 0.004958 | 0.034608 | -0.145691 | 0.140182 | -0.111161 | 0.004134 | -0.746626 | -0.000046 | 1.124296 |
| WPM | 0.004355 | 0.033102 | -0.170535 | 0.098425 | -0.090875 | 0.002732 | -0.680274 | -0.000042 | 0.929395 |
| AEM | 0.001426 | 0.039499 | -0.217057 | 0.164597 | -0.156319 | 0.000812 | -0.495739 | -0.000031 | 0.116850 |
| DRD | 0.009417 | 0.064093 | -0.009097 | 0.234414 | -0.201195 | 0.006622 | -0.323632 | -0.000020 | 2.574258 |
| FNV | 0.003750 | 0.032165 | -0.194307 | 0.110634 | -0.095818 | 0.003599 | -0.233696 | -0.000014 | 0.748085 |
| EGO | 0.002910 | 0.061169 | -0.115909 | 0.320479 | -0.193985 | -0.001121 | -0.112110 | -0.000007 | 0.210574 |
| TMQ | 0.001344 | 0.050266 | -0.172210 | 0.157895 | -0.175676 | -0.004386 | 0.000000 | 0.000000 | 0.017632 |
| NG | 0.005584 | 0.054173 | -0.081512 | 0.276968 | -0.117021 | 0.002328 | 0.000000 | 0.000000 | 1.054380 |
| GOLD | 0.004556 | 0.035489 | -0.153390 | 0.151802 | -0.103331 | 0.002731 | 0.076866 | 0.000005 | 0.971097 |
| AUY | 0.004270 | 0.050570 | -0.113307 | 0.182432 | -0.157143 | 0.004762 | 0.197234 | 0.000012 | 0.676337 |
| AU | 0.004299 | 0.057724 | -0.098757 | 0.232181 | -0.205929 | 0.002628 | 0.396984 | 0.000024 | 0.584840 |
| KGC | 0.005539 | 0.052840 | -0.084430 | 0.190000 | -0.153846 | 0.004132 | 0.434779 | 0.000027 | 1.048815 |
| PLG | 0.003272 | 0.076743 | -0.087667 | 0.358974 | -0.190141 | 0.000000 | 0.714285 | 0.000044 | 0.082430 |
| IAG | 0.001567 | 0.054417 | -0.154973 | 0.211268 | -0.190476 | -0.003333 | 1.117317 | 0.000069 | 0.017434 |
| PVG | -0.000308 | 0.051226 | -0.201224 | 0.195804 | -0.211076 | -0.001940 | 1.210647 | 0.000074 | -0.244365 |
| GSS | -0.001672 | 0.043186 | -0.270279 | 0.198157 | -0.102459 | 0.000000 | 1.214574 | 0.000075 | -0.359784 |
| GFI | 0.006066 | 0.067190 | -0.058546 | 0.267813 | -0.237589 | 0.004862 | 1.270647 | 0.000078 | 0.930777 |
| AG | -0.001522 | 0.052698 | -0.218639 | 0.205000 | -0.141553 | -0.005413 | 1.410252 | 0.000086 | -0.393586 |
| SAND | 0.002849 | 0.054221 | -0.131878 | 0.218415 | -0.167969 | 0.001475 | 1.683939 | 0.000103 | 0.273505 |
| FSM | 0.001687 | 0.059565 | -0.139564 | 0.219828 | -0.225564 | 0.000000 | 1.863352 | 0.000114 | -0.014063 |
| OR | 0.001986 | 0.049132 | -0.163122 | 0.271357 | -0.143855 | 0.002132 | 2.034257 | 0.000124 | 0.151788 |
| EXK | -0.002053 | 0.056984 | -0.211511 | 0.271930 | -0.195804 | -0.005952 | 4.411760 | 0.000267 | -0.467793 |
| SA | 0.002890 | 0.059063 | -0.120377 | 0.287157 | -0.176201 | 0.003058 | 4.851550 | 0.000292 | 0.229353 |
| HMY | 0.004012 | 0.064018 | -0.093535 | 0.168067 | -0.249097 | 0.003135 | 5.763690 | 0.000346 | 0.397169 |